////////////////////////////////////////////////////////////////////////////////

#ifndef _GAMEOBJECT_H_
#define _GAMEOBJECT_H_

////////////////////////////////////////////////////////////////////////////////

#ifndef _COMMONTYPES_H_
#include "commontypes.h"
#endif

////////////////////////////////////////////////////////////////////////////////


/** Base class for different game objects
*
*  @author   Roman Pasechnik
*  @author   Anastasia Karpinska
*  @since    Nov 10th, 2009
*  @updated  Dec 09th, 2009
*/
class GameObject
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    GameObject( int _ID );


    /** Destructor */
    virtual ~GameObject();


////////////////////////////////////////////////////////////////////////////////


    /** Returns object's ID */
    int GetID() const;


    /** Get object's position */
    const Point& GetPosition() const;


    /** Set object's position */
    void SetPosition( const Point& _position );


    /** Get object's rotation angle */
    float GetRotationAngle() const;


////////////////////////////////////////////////////////////////////////////////


    /** Equality */
    bool operator==( const GameObject& _obj ) const;


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Object's ID */
    int m_ID;


    /** Object's position */
    Point m_Position;


    /** Object's rotation angle */
    float m_RotationAngle;


////////////////////////////////////////////////////////////////////////////////
};


////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////

